Automatic and Interactive Parallelization Automatic and Interactive Parallelization
نویسندگان
چکیده
The goal of this dissertation is to give programmers the ability to achieve high performance by focusing on developing parallel algorithms, rather than on architecture-speciic details. The advantages of this approach also include program portability and legibility. To achieve high performance, we provide automatic compilation techniques that tailor parallel algorithms to shared-memory multiprocessors with local caches and a common bus. In particular, the compiler maps complete applications onto the speciics of a machine, exploiting both parallelism and memory. To optimize complete applications, we develop novel, general algorithms to transform loops that contain arbitrary conditional control ow. In addition, we provide new interprocedural transformations which enable optimization across procedure boundaries. These techniques provide the basis for a robust automatic parallelizing algorithm that is applicable to complete programs. The algorithm for automatic parallel code generation takes into consideration the interaction of parallelism and data locality, as well as the overhead of parallelism. The algorithm is based on a simple cost model that accurately predicts cache line reuse from multiple accesses to the same memory location and from consecutive accesses. The optimizer uses this model to improve data locality. It also uses the model to discover and introduce eeective parallelism that complements the beneets of data locality. The optimizer further improves the eeectiveness of parallelism by seeking to increase its granularity. Parallelism is introduced only when granularity is suucient to overcome its associated costs. The algorithm for parallel code generation is shown to be eecient and several of its component algorithms are proven optimal. The eecacy of the optimizer is illustrated with experimental results. In most cases, it is very eeective and either achieves or improves the performance of hand-crafted parallel programs. When performance is not satisfactory, we provide an interactive parallel programming tool which combines compiler analysis and algorithms with human expertise. Acknowledgments Ken Kennedy provided me with the three most important elements of support in graduate school: intellectual, political and nancial. In addition, Ken, Keith Cooper and Linda Torczon fostered a research atmosphere and working environment whose beneets are untold. I would also like to recognize the other members of my committee, has been an endless source of encouragement and wisdom throughout my graduate career. Don Johnson gave me my rst taste of research and hooked me for life. I am fortunate that many of my fellow graduate students and friends supported my research intellectually, emotionally and with implementations. I would …
منابع مشابه
Interactive Parallelizing Assistance Tool for OpenMP: iPat/OMP
This paper proposes an interactive parallelizing assistance tool for OpenMP called iPat/OMP. This tool provides users with the assistance needed for OpenMP parallelization of a sequential program. All of the assistance capabilities are implemented as Emacs functions and are available in the Emacs editor environment in an interactive manner.
متن کاملInvasive Interactive Parallelization
ABSTRACT In this thesis proposal we suggest an interactive method of parallelizing legacy software that is based on separation of concerns and aspect weaving. We statically inject parallelizing code into sequential cores by means of reusable rewrite rules. We view parallelization as a generic refactoring process with programmable control automated by inferences on structured parallelization cat...
متن کاملVISTA: The Visual Interface for Scheduling Transformations and Analysis
VISTA is a visually oriented, interactive environment for parallelizing sequential programs at the instruction level for execution on ne-grain architectures. Fully automatic parallelization techniques often perform well, but may not be able to achieve the strict performance and code size requirements needed for some critical applications. In such cases, manual manipulation by an expert user can...
متن کاملPAP Recognizer: A Tool for Automatic Recognition of Parallelizable Patterns
Techniques for Automatic Program Comprehension can play a crucial role in overcoming limitations of existing tools for the automatic parallelization of programs for distributed-memory architectures. Uses of a program recognition-based parallelization procedure could range from the automatic selection of a data distribution , via the automatic selection of sequences of optimizing transformations...
متن کاملPSPACE Is Provable By Two Provers In One Round
We show that every language in PSPACE, or equivalently every language accepted by an unbounded round interactive proof system, has a 1-round, 2-prover interactive proof system with exponentially small error probability. To obtain this result, we prove the correctness of a simple but powerful method for parallelizing 2-prover interactive proof systems to reduce their error. 3
متن کاملAn Overview of the PIVOT Environment for Program Restructuring†
The objective of PIVOT, a program ParallelizatIon and VisualizatiOn environmenT, described in this paper is to provide a programming environment that facilitates restructuring of programs for parallelization. The environment supports a range of facilities, including visual and textual forms of specifications for code transformations, automatic generation of transformers from specifications, int...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1994